iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
自我挑戰組

應用Zabbix 進行全方位監控系列 第 6

使用Zabbix 監控 PHP-FPM Service

  • 分享至 

  • xImage
  •  

使用Zabbix 監控 PHP-FPM Service

如果使用Apache+php-fpm建置網站,想要了解php-fpm運作狀態,可以使用Zabbix Server進行服務監控。

設備環境

以Zabbix Server 為示範,OS:Ubuntu Linux LTS 22.04,Apache-2.4.52,php-fpm8.1

PHP-FPM設定

建立PHP-FPM的監控頁面,在設定檔新增/status,/ping設定。
目錄為 /etc/php/8.1/fpm/pool.d/,設定目錄需確認php-fpm的安裝版本,版本會影響指令及程式目錄,如果不同請自行修正。

# sudo nano /etc/php/8.1/fpm/pool.d/www.conf
---
pm.status_path = /status
ping.path = /ping
---

https://ithelp.ithome.com.tw/upload/images/20230921/20163206DlpoiD0zh3.png

修改完成後,進行設定檔測試。

# sudo php-fpm8.1 -t

無問題後直接重新載入設定檔。

# sudo systemctl reload php8.1-fpm

https://ithelp.ithome.com.tw/upload/images/20230921/20163206CSRZFcwuWM.png

APACHE設定

在Apache的設定檔增加PHP-FPM監控頁面。設定檔案為/etc/apache2/sites-available/000-default.conf。
設定Require ip 127.0.0.1讓只有本機可以讀取監控頁面。如果需要其它ip讀取,請自行增加。
使用ProxyPass 功能去讀取sock,實際位置如果不同請自行修正。

# sudo vim /etc/apache2/sites-available/000-default.conf
---
    # add php8.1-fpm status
    <LocationMatch "/status">
        Require ip 127.0.0.1
        # Require ip 1.2.3.4    # Your IP here
        # Adjust the path to the socket if needed
        ProxyPass "unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/status"
    </LocationMatch>

    # add php8.1-fpm ping
    <LocationMatch "/ping">
        Require ip 127.0.0.1
        # Require ip 1.2.3.4    # Your IP here
        # Adjust the path to the socket if needed
        ProxyPass "unix:/var/run/php/php8.1-fpm.sock|fcgi://localhost/ping"
    </LocationMatch>
---

https://ithelp.ithome.com.tw/upload/images/20230921/20163206qhhvgf47a3.png

修改完成後,進行設定檔測試

# sudo apachectl configtest

無問題後直接重新載入設定檔

# sudo systemctl reload apache2

https://ithelp.ithome.com.tw/upload/images/20230921/201632064SHodqCG60.png

在本機使用curl 連接/status,/ping進行測試

# curl -L 127.0.0.1/status
# curl -L 127.0.0.1/ping

https://ithelp.ithome.com.tw/upload/images/20230921/20163206hOWuFqGuvN.png

測試成功會出現PHP-FPM訊息,可以進入Zabbix WEB設定

Zabbix WEB設定

Zabbix Server內建的Templates>Applications 有PHP-FPM by HTTP,PHP-FPM by Zabbix agent 2種。
https://ithelp.ithome.com.tw/upload/images/20230921/20163206W4vbjuC6o8.png

PHP-FPM by HTTP

官方連結說明翻譯:
此範本是由 Zabbix 開發的,用於監控 FastCGI Process Manager (PHP-FPM),無需任何外部腳本即可運作。
由於 Zabbix 批量資料收集,大部分指標都是一次性收集的。
此範本PHP-FPM by Zabbix agent- 透過使用 HTTP 代理遠端輪詢 PHP-FPM 狀態頁面來收集指標。
請注意,此解決方案支援 HTTPS 和重定向。

新增頁面設定如下:
https://ithelp.ithome.com.tw/upload/images/20230921/201632064DQqVtAc1S.png

依官網說明在Maros頁面新增7組參數,並填入對應的值。

{$PHP_FPM.PORT}	
80
{$PHP_FPM.SCHEME}	
http
{$PHP_FPM.HOST}	
localhost
{$PHP_FPM.STATUS.PAGE}	
status
{$PHP_FPM.PING.PAGE}	
ping
{$PHP_FPM.PING.REPLY}	
pong
{$PHP_FPM.QUEUE.WARN.MAX}	
80

https://ithelp.ithome.com.tw/upload/images/20230921/20163206begUMnpxGf.png

PHP-FPM by Zabbix agent

官方連結說明翻譯:
此範本是為了透過 Zabbix 代理程式監控 FastCGI 進程管理器 (PHP-FPM) 而開發的,無需任何外部腳本即可運作。
由於 Zabbix 批量資料收集,大部分指標都是一次性收集的。
此範本PHP-FPM by Zabbix agent- 透過使用 Zabbix 代理在本地輪詢 PHP-FPM 狀態頁面來收集指標。
請注意,此模板不支援 HTTPS 和重定向(的限制web.page.get)。
它還使用Zabbix代理程式收集php-fpmLinux進程統計信息,例如CPU使用率、記憶體使用率以及進程是否正在運行。

新增頁面設定如下:
https://ithelp.ithome.com.tw/upload/images/20230921/201632066z3dFvtAlc.png

依官網說明在Maros頁面新增7組參數,並填入對應的值。

{$PHP_FPM.PORT}	
80
{$PHP_FPM.HOST}	
localhost
{$PHP_FPM.STATUS.PAGE}	
status
{$PHP_FPM.PING.PAGE}	
ping
{$PHP_FPM.PING.REPLY}	
pong
{$PHP_FPM.QUEUE.WARN.MAX}	
80
{$PHP_FPM.PROCESS_NAME}	
php-fpm

https://ithelp.ithome.com.tw/upload/images/20230921/20163206HOMe46qIUU.png

在Configuration > Host中新增2個Templates。
https://ithelp.ithome.com.tw/upload/images/20230921/20163206cTbI9v35oj.png

在資料Items中也可以看到PHP-FPM by Zabbix agent比PHP-FPM by HTTP 多收集 CPU使用率、記憶體使用率以及進程是否正在運行等3種資料。

Zabbix使用Zabbix agent2監控PHP-FPM Service,是由Zabbix Server透過監控主機的Zabbix agent2捉取資料,屬於被動模式。

內容如有介紹不周,請多多指教,謝謝。
文章也同步於個人網站


上一篇
使用Zabbix 監控 Apache Service
下一篇
使用Zabbix 監控 MariaDB/MySQL Service
系列文
應用Zabbix 進行全方位監控30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言